add_library(
        base STATIC
        ../config.h.in
        ansi_scrubber.cc
        attr_line.cc
        attr_line.builder.cc
        auto_fd.cc
        auto_pid.cc
        cell_container.cc
        color_spaces.cc
        date_time_scanner.cc
        fs_util.cc
        fts_fuzzy_match.cc
        humanize.cc
        humanize.network.cc
        humanize.time.cc
        intern_string.cc
        is_utf8.cc
        isc.cc
        lnav.console.cc
        lnav.console.win.cc
        lnav.gzip.cc
        lnav_log.cc
        network.tcp.cc
        paths.cc
        piper.file.cc
        progress.cc
        relative_time.cc
        small_string_map.cc
        snippet_highlighters.cc
        string_attr_type.cc
        string_util.cc
        strnatcmp.c
        time_util.cc

        ansi_scrubber.hh
        ansi_vars.hh
        attr_line.hh
        attr_line.builder.hh
        auto_fd.hh
        auto_mem.hh
        auto_pid.hh
        bus.hh
        cell_container.hh
        color_spaces.hh
        date_time_scanner.cfg.hh
        date_time_scanner.hh
        distributed_slice.hh
        enum_util.hh
        from_trait.hh
        fs_util.hh
        fts_fuzzy_match.hh
        func_util.hh
        future_util.hh
        guard_util.hh
        humanize.hh
        humanize.network.hh
        humanize.time.hh
        injector.hh
        injector.bind.hh
        intern_string.hh
        is_utf8.hh
        isc.hh
        itertools.hh
        itertools.enumerate.hh
        keycodes.hh
        line_range.hh
        lnav.console.hh
        lnav.console.into.hh
        lnav.resolver.hh
        lnav.ryml.hh
        log_level_enum.hh
        lrucache.hpp
        map_util.hh
        math_util.hh
        network.tcp.hh
        paths.hh
        piper.file.hh
        progress.hh
        relative_time.hh
        result.h
        short_alloc.h
        small_string_map.hh
        snippet_highlighters.hh
        string_attr_type.hh
        strnatcmp.h
        text_format_enum.hh
        time_util.hh
        types.hh

        ../third-party/xxHash/xxhash.h
        ../third-party/xxHash/xxhash.c
)

target_include_directories(base PUBLIC . .. ../third-party
        ../third-party/date/include
        ${CMAKE_CURRENT_BINARY_DIR}/..
)
target_link_libraries(base
        cppfmt
        cppscnlib
        pcrepp
        pthread
        lnavdt
        lnavnotcurses
        datepp
)

add_executable(
        test_base
        attr_line.tests.cc
        cell_container.tests.cc
        fs_util.tests.cc
        humanize.file_size.tests.cc
        humanize.network.tests.cc
        humanize.time.tests.cc
        intern_string.tests.cc
        lnav.gzip.tests.cc
        math_util.tests.cc
        small_string_map.tests.cc
        string_util.tests.cc
        network.tcp.tests.cc
        test_base.cc)
target_include_directories(test_base PUBLIC ../third-party/doctest-root)
target_link_libraries(test_base base pcrepp ZLIB::ZLIB)
add_test(NAME test_base COMMAND test_base)
